
using System;

using stefc.geo.lib;

namespace stefc.geo.platform
{
	/// <summary>
	/// Abstract drawing interface
	/// </summary>
	public interface ICanvas
	{
		/// <summary>
		/// Fill a rectangle with a color 
		/// </summary>
		void FillRect(double x, double y, double width, double height, 
			Int32 color);
		
		/// <summary>
		/// Text output
		/// </summary>
		void TextOut(Cartesian coord, string text, double fontsize,  
			Int32 foreground, Int32 shadow, Int32 background);
		
		/// <summary>
		/// Select a font for following TextOut operations
		/// </summary>
		void SelectFont(string fontName, bool italic, bool bold);
		
		/// <summary>
		/// Line 
		/// </summary>
		void Line(Cartesian start, Cartesian end, int lineWidth, Int32 color);
	
		void Circle(double radius, int lineWidth, Int32 lineColor);
		
		void Circle(double radius, int lineWidth, Int32 lineColor, Int32 fillColor);
		
		void Pin(Cartesian coord, double radius, Int32 color);
	}
}
